package com.ruoyi.medicine.mapper;

import java.util.List;
import com.ruoyi.medicine.domain.DocStocks;
import org.apache.ibatis.annotations.Param;

/**
 * 商品库存Mapper接口
 * 
 * @author ruoyi
 * @date 2025-08-14
 */
public interface DocStocksMapper 
{
    /**
     * 查询商品库存
     * 
     * @param drugId 商品库存主键
     * @return 商品库存
     */
    public DocStocks selectDocStocksByDrugId(Long drugId);

    /**
     * 查询商品库存列表
     * 
     * @param docStocks 商品库存
     * @return 商品库存集合
     */
    public List<DocStocks> selectDocStocksList(DocStocks docStocks);

    /**
     * 新增商品库存
     * 
     * @param docStocks 商品库存
     * @return 结果
     */
    public int insertDocStocks(DocStocks docStocks);

    /**
     * 修改商品库存
     * 
     * @param docStocks 商品库存
     * @return 结果
     */
    public int updateDocStocks(DocStocks docStocks);

    /**
     * 删除商品库存
     * 
     * @param drugId 商品库存主键
     * @return 结果
     */
    public int deleteDocStocksByDrugId(Long drugId);

    /**
     * 批量删除商品库存
     * 
     * @param drugIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDocStocksByDrugIds(Long[] drugIds);

    /**
     * 扣减商品库存
     *
     * @param drugId 药品ID
     * @param quantity 扣减数量
     * @return 结果
     */
    public int reduceDrugInventory(@Param("drugId") Long drugId, @Param("quantity") Integer quantity);

    int selectDocStocksListCount(DocStocks docStocks);
}
